980 VTAB 10: HTAB 28: PRINT "Location of Data Disk:": RETURN
990 VTAB 12: HTAB 28: PRINT "1. ";: RETURN
1000 IF ID = 1 THEN VTAB 12: HTAB 31: PRINT "Internal Drive": RETURN
1010 VTAB 12: HTAB 31: PRINT "Drive 1": RETURN
1020 VTAB 14: HTAB 28:: PRINT "2. ";: RETURN
1030 IF ID = 1 THEN VTAB 14: HTAB 31: PRINT "External Drive": RETURN
1040 VTAB 14: HTAB 31: PRINT "Drive 2": RETURN
1050 VTAB 16: HTAB 28: PRINT "3. ";: RETURN
1060 VTAB 16: HTAB 31: PRINT "Pathname": RETURN
1070 HTAB 2: VTAB 24: PRINT "Type number, or use arrows, then press Return (Press 'P' for Printer Setup) ";PT;
1080 GOSUB 260: GOTO 1090
1090 IF PEEK(49152) = 155 THEN 3820
1100 GET IN$
1110 IF IN$ = "P" OR IN$ = "p" THEN GOSUB 2940: GOTO 890
1120 IF ASC(IN$) >48 AND ASC(IN$) <52 THEN ON PT GOSUB 1000,1030,1060: LET PT = VAL(IN$): GOTO 1160
1130 IF IN$ = CHR$(13) THEN 1170
1140 IF IN$ = CHR$(10) THEN ON PT GOSUB 1000,1030,1060: LET PT = PT +1: IF PT = 4 THEN PT = 1
1150 IF IN$ = CHR$(11) THEN ON PT GOSUB 1000,1030,1060: LET PT = PT -1: IF PT = 0 THEN PT = 3
1160 INVERSE : ON PT GOSUB 1000,1030,1060: NORMAL : GOTO 1070
1170 IF PT = 3 THEN 1320
1180 VTAB 1: POKE 36,63: PRINT "Escape: Main Menu"
1190 REM <CTRL-J> DETERMINE DATA DISK<CTRL-J>
1200 IF PT = 3 THEN 1320
1210 IF ID = 0 THEN DS$ = "Disk " + STR$(PT) +" ": GOTO 1240
1220 IF PT = 1 THEN DS$ = "Internal"
1230 IF PT = 2 THEN DS$ = "External"
1240 LET DISK$ = "Data Disk: " +DS$
1250 HTAB 10: VTAB 20: PRINT "Place your Data Disk in ";
1260 IF ID = 1 THEN PRINT "the ";DS$;" Drive";
1270 IF ID = 0 THEN PRINT "Drive ";PT;
1280 PRINT " and shut the door.": POKE 34,23: HOME : POKE 34,3: HTAB 2: VTAB 24: PRINT "Press any key to continue ";: GOSUB 270: IF PEEK(49152) = 155 THEN POKE 49168,0: GOTO 890
1290 POKE 49168,0
1300 ONERR GOTO 3510
1310 VTAB 1: HTAB 2: PRINT DISK$;: FOR I = 1 TO 5: PRINT " ";: NEXT I: PRINT TITLE$;: PRINT D$;"PREFIX ,S6,D";PT: PRINT D$;"PREFIX": INPUT PH$: POKE 216,0: GOTO 1530
1320 VTAB 16: HTAB 40: FOR I = 1 TO 40: PRINT ".";: NEXT I
1330 POKE 34,23: HOME : POKE 34,3: VTAB 24: HTAB 2: PRINT "Enter the pathname of your data disk";
1340 VTAB 1: POKE 36,63: PRINT "Escape: Main Menu"
1350 VTAB 16: HTAB 40: IF PH$ < >"" THEN PRINT PH$;
1360 GOSUB 260
1370 IF PEEK(49152) = 155 THEN POKE 49168,0: GOTO 890
1380 GET TM$: IF ASC(TM$) <27 AND TM$ < > CHR$(8) AND TM$ < > CHR$(13) THEN GOSUB 270: GOTO 1370
1390 IF TM$ = CHR$(127) OR TM$ = CHR$(8) THEN 1410
1400 GOTO 1440
1410 IF LEN(PH$) = 0 THEN GOSUB 270: GOTO 1370
1420 IF LEN(PH$) = 1 THEN LET PH$ = "": PRINT CHR$(8);" "; CHR$(8); CHR$(8);: GOTO 1360
1880 IF LEN(DB$) >40 THEN LET DB$ = LEFT$(DB$, LEN(DB$) -1):: GOTO 1790
1890 IF TM$ = CHR$(13) THEN 1910
1900 PRINT TM$;: GOTO 1790
1910 IF DB$ = "" THEN 1790
1920 VTAB 12: HTAB 34: PRINT DB$;: FOR I = 1 TO 40 - LEN(DB$): PRINT " ";: NEXT I: PRINT
1930 REM <CTRL-J> GET NUMBER OF CATEGORIES IN DATA BASE<CTRL-J>
1940 POKE 34,23: HOME : POKE 34,3
1950 VTAB 14: HTAB 10: PRINT "Number of categories in each label: "
1960 VTAB 1: POKE 36,53: PRINT " ": VTAB 1: POKE 36,58: PRINT "Escape: Data Base File"
1970 VTAB 24: HTAB 2: PRINT "Enter the number of categories in each label: ";
1980 GOSUB 260
1990 IF PEEK(49152) = 155 THEN POKE 49168,0: GOTO 1740
2000 GET TM$: IF ASC(TM$) >47 AND ASC(TM$) <58 OR TM$ = CHR$(8) OR TM$ = CHR$(13) THEN 2020
2010 GOSUB 270: GOTO 1990
2020 IF TM$ = CHR$(13) AND R$ < >"" THEN 2100
2030 IF TM$ = CHR$(13) THEN 1980
2040 IF TM$ = CHR$(8) AND LEN(R$) = 0 THEN GOSUB 270: GOTO 1990
2050 IF TM$ = CHR$(8) AND LEN(R$) = 1 THEN LET R$ = "": PRINT CHR$(8);" "; CHR$(8); CHR$(8);: GOTO 1980
2060 IF TM$ = CHR$(8) THEN LET R$ = LEFT$(R$, LEN(R$) -1): PRINT CHR$(8);" "; CHR$(8); CHR$(8);: GOTO 1980
2070 LET R$ = R$ +TM$
2080 IF LEN(R$) >2 THEN LET R$ = LEFT$(R$, LEN(R$) -1):: GOTO 1980
2090 PRINT TM$;: GOTO 1980
2100 LET R = VAL(R$): IF R = 0 THEN R$ = "": GOTO 1940
2110 VTAB 14: POKE 36,46: PRINT R;" "
2120 IF R >30 THEN 3710
2130 POKE 34,23: HOME : POKE 34,16: POKE 35,22: HOME
2140 VTAB 1: POKE 36,53: PRINT " "
2150 REM <CTRL-J>OPEN FILES<CTRL-J>
2160 ONERR GOTO 2320
2170 PRINT D$;"OPEN ";PH$;WP$;",TTXT"
2180 ONERR GOTO 2860
2190 PRINT D$;"OPEN ";PH$;DB$;", TTXT"
2200 REM <CTRL-J> READ WORD PROCESSOR FILE<CTRL-J>
2210 VTAB 16: HTAB 10: PRINT "Reading Word Processor File";
2220 LET LGTH = 0:ER = 0
2230 ONERR GOTO 2320
2240 IF ST$ < >"" THEN FOR I = 1 TO CT: LET ST$(I) = "": NEXT I
2250 LET I = 1
2260 PRINT D$;"READ ";PH$;WP$
2270 CALL 38352:ST$ = MID$ (ST$,1):ST$(I) = ST$
2280 PRINT ".";: LET I = I +1: IF I = LIMIT THEN PRINT D$;"CLOSE": GOTO 3690
2290 LET LGTH = LGTH + LEN(ST$): IF LGTH >LSTRING THEN PRINT D$;"CLOSE": GOTO 3720
2300 IF LEN(ST$) >237 THEN ER = 1: REM STRING IS LARGER THAN BASIC CAN HANDLE
2310 GOTO 2270
2320 POKE 216,0: IF PEEK(222) = 16 THEN 3570
2330 IF PEEK(222) = 13 THEN GOTO 3660
2340 IF PEEK(222) = 6 THEN GOTO 3580
2350 IF PEEK(222) = 77 THEN FOR M = 1 TO I: LET ST$(M) = "": NEXT M: PRINT D$;"CLOSE": GOTO 3720
2360 IF PEEK(222) < >5 THEN 3680
2370 CT = I -1
2380 PRINT D$;"CLOSE ";PH$;WP$
2390 IF ER = 1 THEN GOSUB 3750
2400 IF ID = 1 OR MEM = 1 THEN PRINT D$;"CLOSE ";PH$;DB$: PRINT D$;"OPEN /RAM/TEMP": PRINT D$;"WRITE /RAM/TEMP": FOR I = 1 TO CT: PRINT ST$(I): NEXT I: PRINT D$;"CLOSE /RAM/TEMP": PRINT D$;"OPEN ";PH$;DB$: GOTO 2420
2410 FOR I = 1 TO CT: LET TM$(I) = ST$(I): NEXT I
2420 REM <CTRL-J> JUMP TO ANALYZING FILE<CTRL-J>
2430 POKE 34,3: POKE 35,22: HOME : GOSUB 320: HOME
2440 ONERR GOTO 2860
2450 REM <CTRL-J> BEGIN MERGING DATA BASE INTO WORD PROCESSOR<CTRL-J>
2460 VTAB 12: HTAB 5: PRINT "Make sure your printer is ready to print, then press any key to continue. ";: GET ZZ$: HOME
2470 LET LT = LT +1: VTAB 5: HTAB 32: PRINT "Creating Letter ";LT
2730 REM <CTRL-J> IF SINGLE SHEET, PROMPT FOR NEXT SHEET OF PAPER<CTRL-J>
2740 VTAB 12: HTAB 8: PRINT "Remove sheet of paper from printer and replace with another one.": VTAB 24: PRINT "Press any key to continue. ";: GOSUB 260: POKE 34,23: HOME : POKE 34,3: ONERR GOTO 2860
2750 IF PEEK(49152) = 155 THEN POKE 49168,0: PRINT D$;"CLOSE ";PH$;DB$: POKE 216,0: GOTO 890
2760 POKE 49168,0
2770 PRINT D$;"PR#";SLOT: PRINT CHR$(9);"80N";
2780 IF LEN(ST$(I)) >1 THEN LET ST$(I) = MID$ (ST$(I),2): GOTO 2680
2790 NEXT I
2800 PRINT D$;"PR#3"
2810 PRINT : GOSUB 910
2820 IF ID = 1 OR MEM = 1 THEN PRINT D$;"OPEN /RAM/TEMP": PRINT D$;"READ /RAM/TEMP": FOR I = 1 TO CT: CALL 38352:ST$ = MID$ (ST$,1):ST$(I) = ST$: NEXT I: PRINT D$;"CLOSE /RAM/TEMP": GOTO 2470
2830 FOR I = 1 TO CT
2840 LET ST$(I) = TM$(I): NEXT I
2850 GOTO 2470
2860 POKE 216,0: IF PEEK(222) = 16 THEN PRINT D$;"CLOSE": GOTO 3590
2870 IF PEEK(222) = 6 THEN PRINT D$;"CLOSE": GOTO 3600
2880 IF PEEK(222) = 13 THEN PRINT D$;"CLOSE": GOTO 3670
3230 IF ID = 1 THEN PRINT "Enter the port number your printer is connected to: ";: GOTO 3250
3240 PRINT "Enter the slot number your printer is connected to: ";
3250 GOSUB 260: IF PEEK(49152) = 155 THEN POKE 49168,0: GOTO 3120
3260 GET TM$: IF ID = 1 AND ASC(TM$) >48 AND ASC(TM$) <51 AND TM$ < >"3" THEN PRINT TM$;: LET SLOT = VAL(TM$): VTAB 12: POKE 36,65: PRINT SLOT: GOTO 3120
3270 IF ASC(TM$) >48 AND ASC(TM$) <56 AND TM$ < >"3" THEN PRINT TM$;: LET SLOT = VAL(TM$): VTAB 12: POKE 36,65: PRINT SLOT: GOTO 3120
3520 HOME : VTAB 10: HTAB 15: PRINT "Cannot read the disk. Make sure a disk is in the drive": HTAB 15: PRINT "and the drive door is closed. Press any key to continue ";: GET ZZ$: HOME : GOTO 960
3530 POKE 216,0: HOME : VTAB 10: HTAB 15
3540 IF PEEK(222) = 16 THEN PRINT "Illegal pathname. Try again. Press any key to continue ";: GET ZZ$: HOME : VTAB 1: POKE 36,63: PRINT " ": GOTO 960
3550 IF PEEK(222) = 6 THEN PRINT "Cannot find disk with appropriate pathname.": HTAB 15: PRINT "Try again. Press any key to continue ";: GET ZZ$: HOME : VTAB 1: POKE 36,63: PRINT " ": GOTO 960
3560 POKE 216,0: GOTO 3680
3570 HOME : VTAB 18: HTAB 10: PRINT "The Word Processor filename, '";WP$;"'": HTAB 10: PRINT "is an illegal filename.": HTAB 10: PRINT "Try again by pressing any key to continue ";: GET ZZ$: HOME : GOTO 1530
3580 HOME : VTAB 18: HTAB 10: PRINT "Cannot find the Word Processor file '";WP$;: PRINT "'.": HTAB 10: PRINT "Try again by pressing any key to continue ";: GET ZZ$: HOME : GOTO 1530
3590 HOME : VTAB 20: HTAB 10: PRINT "The Data Base filename, '";DB$;"'": HTAB 10: PRINT "is an illegal filename.": HTAB 10: PRINT "Try again by pressing any key to continue ";: GET ZZ$: HOME : GOTO 1530
3600 VTAB 20: HTAB 10: PRINT "Cannot find the Data Base file '";DB$;"'."
3610 HTAB 10: PRINT "Try again by pressing any key ";: GET ZZ$
3620 GOTO 1530
3630 VTAB 20: HTAB 2: PRINT "There were more or fewer categories in the Data Base than you specified."
3640 HTAB 2: PRINT "The merged words in your printout may be inacurate. Check your Data Base to"
3650 HTAB 2: PRINT "determine the correct number of categories. Press any key to continue";: GET ZZ$: GOTO 890
3660 HOME : VTAB 18: HTAB 10: PRINT "The file '";WP$;"' is not an ASCII file.": GOTO 3700
3670 HOME : VTAB 18: HTAB 10: PRINT "The file '";DB$;"' is not an ASCII file.": GOTO 3700
3680 TEXT : HOME : PRINT "An unexpected error "; PEEK(222);" occurred. ": END
3690 HOME : VTAB 18: HTAB 10: PRINT "There are more than ";LIMIT;" lines in your document. Merge only that": HTAB 10: PRINT "portion of the document that needs to be merged,": HTAB 10: PRINT "or split your document in two."
3700 HTAB 10: PRINT "Press any key to continue. ";: GET ZZ$: TEXT : GOTO 890
3710 VTAB 18: HTAB 10: PRINT "A maximum of 30 MERGE identifiers may be specified.": HTAB 10: PRINT "Press any key to continue. ";: GET ZZ$: LET R$ = "": GOTO 1940
3720 HOME : VTAB 18: HTAB 10: PRINT "Your Word Processor File is too big. Merge only that portion": HTAB 10: PRINT "of the document that needs to be merged, or split your document in two.": GOTO 3700
3730 HOME : VTAB 12: HTAB 10: PRINT "Your Word Processor File has over 6 labels in line ";I;".": GOTO 3700
3740 VTAB 18: HTAB 10: PRINT "'[MERGE#]' in your Word Processor file is not": HTAB 10: PRINT "in the correct format.": PRINT : GOTO 3700
3750 HOME : VTAB 18: HTAB 10: PRINT "One of the lines in your Word Processor file may be too long": HTAB 10: PRINT "for AppleWorks Mailing Program. See your AMP manual for details."
3760 HTAB 10: PRINT "Press any key to continue ";: GET ZZ$: RETURN
3770 HOME : VTAB 12: PRINT "This program runs only on an Apple IIc": PRINT "or an Apple IIe with an 80-column card.": END
3780 VTAB 12: PRINT "Please make sure your program disk is in one of the drives.": PRINT "Press any key to continue ";: GET ZZ$: GOTO 3820
3790 POKE 49168,0: RESUME : REM IF CTRL-C IS PRESSED IGNORE
3800 END
3810 REM <CTRL-J> END PROGRAM (GO TO CATALYST?)<CTRL-J>